The present invention relates to the construction of surface representations, and more particularly, to systems and methods for tracking surface representations.
The tracking of surface representations, or “surface tracking” as known in the art, can generally be described as the rendering or illustration as to the movement or progression of a surface over time, and is an important process in many fields, such computer graphics in simulation of fluid surfaces, surface rendering of soft tissue deformation in medical simulation, computed tomography, molecular dynamics, and feature profile evolution in nanotechnology. The surfaces of rigid and deformable objects which are to be monitored are often represented by explicit triangle meshes. Triangle meshes are simple and efficient data structures. They can be sent directly to GPUs for rendering for instance. In addition, the explicit representation makes direct Lagrangian simulation of cloth or soft bodies straight forward. One simply modifies the vertex positions. Under large deformations, local re-sampling might be necessary as well. Meshes are well suited as long as the topology of the surface does not change. In the case of deformable solids this is guaranteed in most scenarios (except when the bodies are allowed to merge or tear).
For solids, the self collision handling process should make sure that surfaces do not self-intersect. In contrast, the free surface of a liquid constantly changes its topology by splitting and merging with itself. In this scenario, working with explicit representations of the surface becomes more problematic. A triangle mesh would need to be repaired whenever a self intersection occurs.
Previous approaches to address this problem include the “Level Set Method” described by J. Sethian in “Level Set Methods and Fast Marching Methods,” Addison-Weslay Publishing Company, ISBN 0521645573, 1999, incorporated herein by reference. In summary, the method defines the surface implicitly as the zero set of a scalar field—typically its signed distance field. During simulation, the scalar field is advected along a velocity field. In case of a fluid simulation, the velocity field is given as the solution of the Navier-Stokes equations. A typical algorithm to simulate free surface fluids in an Eulerian, grid-based setting includes the following steps of:                1) Updating the velocity field by solving the Navier Stokes equations on the fluid grid;        2) Solve the advection equation on the level set;        3) Update the structure of the narrow band grid and extrapolate the level set values;        4) Re-normalize the level set; and        5) Extract a triangle mesh from the level set for rendering using Marching Cubes.        
Unfortunately, high resolution simulations of this type are still too expensive to run in real time. Particularly, the resolution of the level set is higher than the one of the fluid grid, and steps 2-4 become the bottleneck in both performance and memory consumption.
Accordingly, what is needed is an improved system and method for surface tracking which is more efficient in terms of memory and computational resources consumed.